package de.fhluebeck.oop.gps.dao;

import java.sql.SQLException;
import java.util.List;

import de.fhluebeck.oop.gps.db.Database;

/**
 *
 * Beschreibung:<br>Interface für die DAO-Klassen.
 * 
 * Dient der Abstraktion der Datenzugriffsmethoden
 * 
 * @author Ogün Bilge, Leif Hitzschke
 * @version 1.00, 05.11.2009
 */
public interface IDAO<T> {

	T create(T entity) throws SQLException;

	void delete(T entity) throws SQLException;

	T update(T entity) throws SQLException;

	boolean isValid() throws SQLException;

	void initialize() throws SQLException;

	void drop() throws SQLException;

	List<T> readAll() throws SQLException;

	T findById(Long id) throws SQLException;
	
	void setDatabase(Database database);

}